/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Arturo
 */
@Entity
@Table(name = "Direccion_no_persona")
@NamedQueries({
    @NamedQuery(name = "Direccionnopersona.findAll", query = "SELECT d FROM Direccionnopersona d"),
    @NamedQuery(name = "Direccionnopersona.findByIdDireccion", query = "SELECT d FROM Direccionnopersona d WHERE d.idDireccion = :idDireccion"),
    @NamedQuery(name = "Direccionnopersona.findByNomVia", query = "SELECT d FROM Direccionnopersona d WHERE d.nomVia = :nomVia"),
    @NamedQuery(name = "Direccionnopersona.findByLugarResidencia", query = "SELECT d FROM Direccionnopersona d WHERE d.lugarResidencia = :lugarResidencia"),
    @NamedQuery(name = "Direccionnopersona.findByCondicCasa", query = "SELECT d FROM Direccionnopersona d WHERE d.condicCasa = :condicCasa"),
    @NamedQuery(name = "Direccionnopersona.findByNumero", query = "SELECT d FROM Direccionnopersona d WHERE d.numero = :numero"),
    @NamedQuery(name = "Direccionnopersona.findByInterior", query = "SELECT d FROM Direccionnopersona d WHERE d.interior = :interior"),
    @NamedQuery(name = "Direccionnopersona.findByReferDir", query = "SELECT d FROM Direccionnopersona d WHERE d.referDir = :referDir")})
public class Direccionnopersona implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = "id_direccion")
    private Long idDireccion;
    @Basic(optional = false)
    @Column(name = "nom_via")
    private String nomVia;
    @Basic(optional = false)
    @Column(name = "lugar_residencia")
    private String lugarResidencia;
    @Column(name = "condic_casa")
    private String condicCasa;
    @Column(name = "Numero")
    private String numero;
    @Column(name = "interior")
    private Character interior;
    @Column(name = "refer_dir")
    private String referDir;
    @JoinColumn(name = "cod_distrito_dir", referencedColumnName = "Cod_distrito")
    @ManyToOne
    private Distrito codDistritoDir;
    @JoinColumn(name = "Cod_pais", referencedColumnName = "Cod_pais")
    @ManyToOne
    private Pais codpais;
    @JoinColumn(name = "cod_tipo_lugar_residencia", referencedColumnName = "id_tabla_tipo")
    @ManyToOne(optional = false)
    private Tipo codTipoLugarResidencia;
    @JoinColumn(name = "cod_tipo_via", referencedColumnName = "id_tabla_tipo")
    @ManyToOne(optional = false)
    private Tipo codTipoVia;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idDireccion")
    private List<Proveedor> proveedorList;

    public Direccionnopersona() {
      nomVia=null;
      lugarResidencia=null;
      condicCasa=null;
      numero=null;
      interior=null;
      referDir=null;
      codDistritoDir=null;
      codpais=null;
      codTipoLugarResidencia=null;
      codTipoVia=null;

    }

    public Direccionnopersona(Long idDireccion) {
        this.idDireccion = idDireccion;
    }

    public Direccionnopersona(Long idDireccion, String nomVia, String lugarResidencia) {
        this.idDireccion = idDireccion;
        this.nomVia = nomVia;
        this.lugarResidencia = lugarResidencia;
    }

    public Long getIdDireccion() {
        return idDireccion;
    }

    public void setIdDireccion(Long idDireccion) {
        this.idDireccion = idDireccion;
    }

    public String getNomVia() {
        return nomVia;
    }

    public void setNomVia(String nomVia) {
        this.nomVia = nomVia;
    }

    public String getLugarResidencia() {
        return lugarResidencia;
    }

    public void setLugarResidencia(String lugarResidencia) {
        this.lugarResidencia = lugarResidencia;
    }

    public String getCondicCasa() {
        return condicCasa;
    }

    public void setCondicCasa(String condicCasa) {
        this.condicCasa = condicCasa;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }

    public Character getInterior() {
        return interior;
    }

    public void setInterior(Character interior) {
        this.interior = interior;
    }

    public String getReferDir() {
        return referDir;
    }

    public void setReferDir(String referDir) {
        this.referDir = referDir;
    }

    public Distrito getCodDistritoDir() {
        return codDistritoDir;
    }

    public void setCodDistritoDir(Distrito codDistritoDir) {
        this.codDistritoDir = codDistritoDir;
    }

    public Pais getCodpais() {
        return codpais;
    }

    public void setCodpais(Pais codpais) {
        this.codpais = codpais;
    }

    public Tipo getCodTipoLugarResidencia() {
        return codTipoLugarResidencia;
    }

    public void setCodTipoLugarResidencia(Tipo codTipoLugarResidencia) {
        this.codTipoLugarResidencia = codTipoLugarResidencia;
    }

    public Tipo getCodTipoVia() {
        return codTipoVia;
    }

    public void setCodTipoVia(Tipo codTipoVia) {
        this.codTipoVia = codTipoVia;
    }

    public List<Proveedor> getProveedorList() {
        return proveedorList;
    }

    public void setProveedorList(List<Proveedor> proveedorList) {
        this.proveedorList = proveedorList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idDireccion != null ? idDireccion.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof Direccionnopersona)) {
            return false;
        }
        Direccionnopersona other = (Direccionnopersona) object;
        if ((this.idDireccion == null && other.idDireccion != null) || (this.idDireccion != null && !this.idDireccion.equals(other.idDireccion))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.Direccionnopersona[idDireccion=" + idDireccion + "]";
    }

}
